<?php 
class venda_visitahistModel extends Model{
    public $tabela = "venda_visitahist";
    public $pkey   = 'cod';
    public $dados  = array(
         
         'cod' => array(
	    'name'     => 'Código',
	    'type'     => 'int',
	    'size'     => '11',
	    'pkey'    => true,
	    'ai'      => true,
	    'grid'    => true,
	    'display' => true,
	    'private' => true
        ),
        
        'visita' => array(
	    'name'     => 'Visita',
	    'type'     => 'int',
	    'size'     => '11',
	    'notnull' => true,
            'especial' => 'session',
            'session' => 'venda/visita',
	    'fkey' => array(
	        'model' => 'venda/visita',
	        'cardinalidade' => '1n',
	        'keys' => array('venda_visita_cod', 'venda_visita_descricao'),
                'onupdate' => 'cascade',
                'ondelete' => 'cascade',
	    )
        ),
        
        'cod_usuario' => array(
	    'name'     => 'Autor',
	    'type'     => 'int',
	    'size'     => '11',
            'especial' => 'autentication',
            'autentication' => array('needlogin' => true),
	    'grid'    => true,
	    'display' => true,
	    'fkey' => array(
	        'model' => 'usuario/login',
	        'cardinalidade' => '1n',
	        'keys' => array('cod_usuario', 'user_name', 'user_cargo'),
                'onupdate' => 'cascade',
                'ondelete' => 'restrict',
	    ),
        ),
        
        'criado' => array(
	    'name'     => 'Data da Mensagem',
	    'type'     => 'timestamp',
            'especial' => 'hide',
	    'grid'    => true,
	    'display' => true,
        ),
        
        'mensagem' => array(
	    'name'     => 'Nova Mensagem',
	    'type'     => 'text',
            'textlenght' => '256',
            'notnull'   => true,
            'especial' => 'editor',
            'editor'   => array('format', 'list', 'link', 'history'),
	    'grid'    => true,
	    'display' => true,
        ),
         
	'button' => array('button' => 'Enviar'));
    
    public function Log($msg, $ignore_unsaved = false) {
        
        $this->LoadModel('venda/visita', 'vis');
        if(!$this->vis->is_saved($_SESSION['venda/visita']) && !$ignore_unsaved) return true;
        $arr['cod_usuario'] = usuario_loginModel::CodUsuario();
        $arr['mensagem']    = $msg;
        $arr['visita']      = '';
        
        $this->alertar("Alterações na Visita", $msg);
        return $this->inserir($arr);
    }
    
    private function alertar($assunto, $corpo){
        
        if(!isset($_SESSION['venda/visita'])) return true;
        
        $this->LoadModel('usuario/login', 'uobj');
        $this->db->Join($this->getTable(), $this->uobj->getTable());
        $var = $this->selecionar(array('DISTINCT email'), "visita = '".$_SESSION['venda/visita']."'", 1000);
        if(empty($var)) return true;
        
        $destinatarios = array();
        foreach($var as $user)
            $destinatarios[] = $user['email'];
        
        $url     = "venda/visita/show/".$_SESSION['venda/visita'];
        $this->LoadModel('notificacao/notifica', 'not');
        if(!$this->not->alertar($assunto, $corpo, $destinatarios, $url)){
            $this->setAlertMessage($this->not->getAlertMessage());
            return false;
        }
        return true;
    }
    
    public function inserir($dados) {
        if(!parent::inserir($dados)) return false;
        $this->alertar('Novo comentário em uma visita', $dados['mensagem']);
        return true;
    }
    
}
?>